/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import Entidades.Gerente;
import Persistencia.PersistenciaoGerente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import telas.ManterGerenteView;
import telas.CadastrarGerenteView;
import telas.DiretorRegionalView;

/**
 *
 * @author Thalyta
 */
public class ManterGerentePresenter {
    
    private ManterGerenteView gerente ;
    private PersistenciaoGerente gerentes = new PersistenciaoGerente();

    public ManterGerentePresenter(ManterGerenteView gerenti) {
        
           
            gerente = gerenti ;
      
      
        carregaGerentes(gerentes.getGerentes(), gerente);
        
        gerente.getBtnEditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                 editar();
                 
                
            }
        });
        
   
        gerente.getBtncadastrar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                    cadastrar();
                    
            }
        });
        
        
        gerente.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                fechar();
            }
        });
        
        
        gerente.getBtnDesativar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               
               desativar();
                
            }
        });
        gerente.getTransferir().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                transferir();
            }
        });
        
        
        gerente.setVisible(true);
    }
    
    
public void editar(){
                  String nome = gerente.getTblTabelaGerente().getValueAt(gerente.getTblTabelaGerente().getSelectedRow(), 0).toString();
                  Gerente b ;
                  b = gerentes.PesquisaAgencia(nome);
                  CadastrarGerenteView casgerentes = new CadastrarGerenteView();
                  casgerentes.getTxtnome().setText(b.getNome());
                  casgerentes.getTxtDataNascimento().setText(b.getEndereço());
                  casgerentes.getTxtcpf().setText(b.getCPF());
                  casgerentes.getTxtNomeusuario().setText(b.getNomeusuario());
                  casgerentes.getTxtcodigoAgencia().setText(b.getAgencia().getCodigo());
                 casgerentes.setVisible(true);
                 gerentes.excluirGerente(b);
                 gerentes.gravaGerente();
                 CadastroGerentePresenter contgerentes = new CadastroGerentePresenter(casgerentes);
                 gerente.setVisible(false);


}

public void desativar(){
                String nome = gerente.getTblTabelaGerente().getValueAt(gerente.getTblTabelaGerente().getSelectedRow(), 0).toString();
                  Gerente b ;
                  b = gerentes.PesquisaAgencia(nome);
                   gerentes.excluirGerente(b);
                   gerentes.gravaGerente();
                    gerente.setVisible(true);


}

public void fechar(){
 DiretorRegionalView telagerente = new DiretorRegionalView();
 DiretorRegionalPresenter dir = new DiretorRegionalPresenter(telagerente);
 gerente.setVisible(false);


}

public void cadastrar(){
    
                    CadastrarGerenteView casgerentes = new CadastrarGerenteView();
                    CadastroGerentePresenter contgerentes = new CadastroGerentePresenter(casgerentes);
                     gerente.setVisible(false);


}

public void transferir (){
String nome = gerente.getTblTabelaGerente().getValueAt(gerente.getTblTabelaGerente().getSelectedRow(), 0).toString();
                  Gerente b ;
                  b = gerentes.PesquisaAgencia(nome);
                  
                  CadastrarGerenteView casgerentes = new CadastrarGerenteView();
                  casgerentes.getTxtnome().setText(b.getNome().toString());
                  casgerentes.getTxtDataNascimento().setText(b.getEndereço());
                  casgerentes.getTxtcpf().setText(b.getCPF());
                  casgerentes.getTxtNomeusuario().setText(b.getNomeusuario());
                 
                 casgerentes.setVisible(true);
                 gerentes.excluirGerente(b);
                 gerentes.gravaGerente();
                 CadastroGerentePresenter contgerentes = new CadastroGerentePresenter(casgerentes);
                 gerente.setVisible(false);

}

private void carregaGerentes(ArrayList gerentes,ManterGerenteView gerente ) {
      DefaultTableModel tm = new DefaultTableModel(
                
            new Object[][]{},
            new String [] {"Nome", "Endereço", "Codi Agencia","Cidade"}){
            
        @Override
        public boolean isCellEditable(int row, int col){
            return false;
        }
     };
       
     tm.setNumRows(0);
     
      for (int i = 0; i < gerentes.size(); i++) {
            
            Gerente gerenti = (Gerente) gerentes.get(i);
            tm.addRow(new Object[]{gerenti.getNome(), gerenti.getEndereço(),gerenti.getAgencia().getCodigo(),gerenti.getAgencia().getCidade()});
         
         
     }
    gerente.getTblTabelaGerente().setModel(tm);
        
    }
        
        
    }
